home *** CD-ROM | disk | FTP | other *** search
- /*
- File: SNMPTransport.h
-
- Contains: Declaration for SNMP Transport
-
- Copyright: © 1991-1992 by Apple Computer, Inc., all rights reserved.
-
- */
-
- #ifndef __SNMPTRANSPORT__
- #define __SNMPTRANSPORT__
-
-
- /**********************************************************************
- ** Includes
- **********************************************************************/
-
- #ifndef __LIBRARYMANAGER__
- #include <LibraryManager.h>
- #endif
-
- #ifndef __TSNMP__
- #include <TSNMP.h>
- #endif
-
- #define default_NumofReads 8
- #define default_ReadTIAddrSRCmax 4
- #define default_ReadTIAddrDESTmax 4
-
-
- struct SNMPPacketStruct {
- PacketPiece piece[kDynamicArray];
- };
-
- typedef struct SNMPPacketStruct SNMPPacketStruct;
- typedef SNMPPacketStruct* SNMPPacketStructPtr;
- typedef SNMPPacketStruct** SNMPPacketStructHdl;
-
-
- struct PacketElement {
- Ptr qLink;
- short count;
- };
- typedef struct PacketElement PacketElement;
- typedef struct PacketElement* PacketElementPtr;
-
-
- /**********************************************************************
- ** typedef for the write & read Procs
- **********************************************************************/
- class TSNMPTransport;
-
- struct SNMPTransportBlock {
- unsigned long qLink; // reserved for pointer to next block
- short qType; // reserved for queue routines
- TSNMPTransport* transport; // who was asked to read or write this block
- SNMPError result; // after request is serviced
- void* destopaqueData; // destination address to be resolved (used in write only)
- TIAddressPtr destination; // who the packet was sent to
- TIAddressPtr source; // who sent the packet to us
- void * UserDataPtr; // Transport work space
- Boolean freeFlag; // managed by SNMP Manager
- Boolean readFlag; // managed by SNMP Manager
- PacketElementPtr pktelementPtr; // managed by SNMP Manager
- SNMPPacketStructPtr packetPtr; // managed by SNMP Manager
- };
- typedef struct SNMPTransportBlock SNMPTransportBlock;
- typedef SNMPTransportBlock* SNMPTransportBlockPtr;
-
- /**********************************************************************
- ** callback routine --> Write & WriteCleanup & Read Address Proc
- **********************************************************************/
- typedef void
- (*TransportRWProcPtr)(SNMPTransportBlockPtr dataPtr);
-
- /**********************************************************************
- ** Class TSNMPTransport
- ***********************************************************************/
- #define kTSNMPTransportID "snmp:mgr$TSNMPTrans"
- #define kLIB_TransID "snmp:trans$" // Library Id for an SNMP Transport
-
- class TSNMPTransport : public TDynamic
- {
- public:
-
- TSNMPTransport();
- virtual ~TSNMPTransport();
- virtual Boolean IsValid() const; // returns valid or not valid state of
-
- virtual OSErr InitSNMPTransport(
- TransportTag aTag,
- TIAddressPtr aTrapSocketPtr,
- TIAddressPtr aReqSocketPtr,
- Boolean ahandlesresolution,
- short aWritebufsize,
- TransportRWProcPtr aWriteProcPtr,
- short aNumofReads,
- short aReadTIAddrSRCmax,
- short aReadTIAddrDESTmax,
- short aReadbufsize,
- TransportRWProcPtr aReadProcPtr);
-
- virtual void SNMPWriteDone(SNMPTransportBlockPtr snmpPtr);
- virtual void SNMPReadDone(SNMPTransportBlockPtr snmpPtr);
-
- TSNMPManagerPrv* fSNMPManagerPtr;
-
- friend TSNMPManagerPrv;
-
-
- protected:
- Boolean fValid;
- Boolean fhandlesresolution;
- short fNumofReads;
- short fReadTIAddrSRCmax;
- short fReadTIAddrDESTmax;
- short fReadbufsize;
- short fWritebufsize;
-
- private:
-
- TransportTag fTag;
- TIAddressPtr fTrapSocketPtr;
- TIAddressPtr fReqSocketPtr;
- TransportRWProcPtr fWriteProcPtr;
- TransportRWProcPtr fReadProcPtr;
- };
-
- #endif